package com.example.myapplication.TouchDemo;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Toast;

import com.example.myapplication.R;

public class TouchEventActivity extends AppCompatActivity implements View.OnClickListener,View.OnLongClickListener, View.OnTouchListener {
    TestView1 testView1;
    TestView2 testView2;
    TestView2 testView3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_touch_event);
        testView1 = findViewById(R.id.touchTestView1);
        testView2 = findViewById(R.id.touchTestView2);
        testView3 = findViewById(R.id.touchTestView3);
        testView2.setColor(Color.RED);
        testView3.setColor(Color.YELLOW);


//        testView1.setOnClickListener(this);
//        testView2.setOnClickListener(this);
//        testView3.setOnClickListener(this);
//        testView1.setOnLongClickListener(this);
        testView1.setOnTouchListener(this);
        testView2.setOnTouchListener(this);
        testView3.setOnTouchListener(this);
    }

    @Override
    public void onClick(View v) {
        Toast.makeText(this,"onClick...",Toast.LENGTH_SHORT).show();
    }

    @Override
    public boolean onLongClick(View v) {
        Toast.makeText(this,"onLongClick...",Toast.LENGTH_SHORT).show();
        /// return false; 代表当前even事假未被消费。可以继续返回even到上一层触摸事假。
        return true;
    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        Toast.makeText(this,v.getId()+"onTouch..."+event.getAction(),Toast.LENGTH_SHORT).show();
        /// return false; 代表当前even事假未被消费。可以继续返回even到上一层触摸事假。
        /// return true; 返回 onTouch...0 和 onTouch...1 代表按下与抬起
        /// 而return false; 只返回一半，只有按下。

        ///当onTouchEven返回true（成功消费）是才会有onTouch1；才会有弹起onTouch1 onTouch1Even，不进入下一层
        ///当onTouchEven返回false（未成功消费）是不会有onTouch1；不会有弹起onTouch1 onTouch1Even，；进入下一层
        return false;
    }
}